home *** CD-ROM | disk | FTP | other *** search
/ Together in Jesus: 1st Eucharist Computer Fun / Together in Jesus - First Eucharist - Computer Fun.iso / fireworks.swf / scripts / DefineSprite_1_canvas / frame_5 / DoAction.as
Text File  |  2007-10-02  |  4KB  |  138 lines

  1. function GetWidthRatio(char)
  2. {
  3.    index = 0;
  4.    while(index < ratiotable.length)
  5.    {
  6.       if(ratiotable[index] == char)
  7.       {
  8.          return parseFloat(ratiotable[index + 1]);
  9.       }
  10.       index += 2;
  11.    }
  12.    size1 = textFormat.getTextExtent("W");
  13.    size2 = textFormat.getTextExtent(char);
  14.    return size2.width / size1.width;
  15. }
  16. _global.numEffect = 0;
  17. _global.numStarted = 0;
  18. _global.numLeaved = 0;
  19. enterDelay = new Array();
  20. leaveDelay = new Array();
  21. xEffect = new Array();
  22. yEffect = new Array();
  23. textEffect = new Array();
  24. curLine = 0;
  25. curChar = 0;
  26. curEnterDelay = 0;
  27. curLeaveDelay = 0;
  28. sumEnterDelay = 0;
  29. sumLeaveDelay = 0;
  30. while(curLine < paraText.Length)
  31. {
  32.    if(curChar == 0 && curLine == 0)
  33.    {
  34.       textHeight = paraText.Length * lineHeight + (paraText.Length - 1) * lineSpace;
  35.       switch(param["Movie.TextVAlign"])
  36.       {
  37.          case "top":
  38.             textTop = 0;
  39.             break;
  40.          case "middle":
  41.             textTop = (param["Movie.Height"] - textHeight) / 2;
  42.             break;
  43.          case "bottom":
  44.             textTop = param["Movie.Height"] - textHeight;
  45.       }
  46.       lineTop = textTop + param["Movie.TextVOffset"] + lineHeight / 2;
  47.    }
  48.    if(curChar == 0)
  49.    {
  50.       switch(_global.playMode)
  51.       {
  52.          case 0:
  53.             lineWidth = (paraText[curLine].Length - 1) * charSpace;
  54.             i = 0;
  55.             while(i < paraText[curLine].Length)
  56.             {
  57.                lineWidth += GetWidthRatio(paraText[curLine].substr(i,1)) * charWidth;
  58.                i++;
  59.             }
  60.             break;
  61.          case 1:
  62.             lineWidth = charWidth;
  63.       }
  64.       switch(param["Movie.TextHAlign"])
  65.       {
  66.          case "left":
  67.             lineLeft = 0;
  68.             break;
  69.          case "center":
  70.             lineLeft = (param["Movie.Width"] - lineWidth) / 2;
  71.             break;
  72.          case "right":
  73.             lineLeft = param["Movie.Width"] - lineWidth;
  74.       }
  75.       charLeft = lineLeft + param["Movie.TextHOffset"] + charWidth / 2;
  76.       if(param["Movie.ReverseLetter"])
  77.       {
  78.          sumEnterDelay = 2 * curEnterDelay + (paraText[curLine].Length - 1) * param["Text.EnterDelay"];
  79.          sumLeaveDelay = 2 * curLeaveDelay + (paraText[curLine].Length - 1) * param["Text.LeaveDelay"];
  80.       }
  81.    }
  82.    if(curChar < paraText[curLine].Length)
  83.    {
  84.       if(param["Movie.ReverseLetter"])
  85.       {
  86.          cLetter = paraText[curLine].substr(paraText[curLine].Length - curChar - 1,1);
  87.       }
  88.       else
  89.       {
  90.          cLetter = paraText[curLine].substr(curChar,1);
  91.       }
  92.       widthRatio = GetWidthRatio(cLetter);
  93.       if(cLetter != " ")
  94.       {
  95.          _global.numEffect = _global.numEffect + 1;
  96.          if(param["Movie.ReverseLetter"])
  97.          {
  98.             enterDelay[_global.numEffect] = sumEnterDelay - curEnterDelay;
  99.             leaveDelay[_global.numEffect] = sumLeaveDelay - curLeaveDelay;
  100.          }
  101.          else
  102.          {
  103.             enterDelay[_global.numEffect] = curEnterDelay;
  104.             leaveDelay[_global.numEffect] = curLeaveDelay;
  105.          }
  106.          xEffect[_global.numEffect] = charLeft - (1 - widthRatio) * charWidth / 2;
  107.          yEffect[_global.numEffect] = lineTop;
  108.          textEffect[_global.numEffect] = cLetter;
  109.       }
  110.       switch(_global.playMode)
  111.       {
  112.          case 0:
  113.             charLeft += charWidth * widthRatio + charSpace;
  114.             break;
  115.          case 1:
  116.       }
  117.       curChar++;
  118.       curEnterDelay += param["Text.EnterDelay"];
  119.       curLeaveDelay += param["Text.LeaveDelay"];
  120.    }
  121.    if(curChar == paraText[curLine].Length)
  122.    {
  123.       if(param["Movie.SyncLine"])
  124.       {
  125.          curEnterDelay = 0;
  126.          curLeaveDelay = 0;
  127.       }
  128.       else
  129.       {
  130.          curEnterDelay += param["Text.EnterDelay"];
  131.          curLeaveDelay += param["Text.LeaveDelay"];
  132.       }
  133.       curChar = 0;
  134.       curLine++;
  135.       lineTop += lineHeight + lineSpace;
  136.    }
  137. }
  138.